The data transfer rate achievable over a high-speed network has steadily increased. Today local area networks based on the Ethernet standard are widespread. Ethernet was initially specified in the late 1970's. It supports data transfer rates of 1 to 10 Mbits per second (at the physical layer--the transfer rate effectively usable for user data is substantially lower).
In typical computer networks, Ethernet data can be received at a maximum rate of one packet per every 12 milliseconds. When a packet of data arrives within a computer system, it is often necessary for it to come to the attention of the processor in a timely manner. A packet of data received over a high speed network could be, for example, audio or video information for the computer system to reproduce in real time, a command for the processor to perform, or a part of a data file for an applications program.
Recently, substantial activity designing high speed networks has been focused on both local area and long distance networks based on the Asynchronous Transfer Mode (ATM) Standard. ATM network standards have been defined for transmitting over optical fiber lines at rates of 51.8 to 2488 Mbits per second.
Computer data is often transmitted over an ATM network according to the ATM Adaptation Layer 5 (AAL5) standard. AAL5 provides for transmitting data in packets of variable length, up to a maximum of 64 KBytes per packet.
For many applications, it is desirable that a computer system include a mechanism that interrupts the normal execution of its processor when a network data packet arrives. However under such a scheme, as the speed of the network increases, so does the interrupt rate. It may be quite acceptable to incur one interrupt for every Ethernet packet, which requires at least 12 millisecond per packet.
But one interrupt for every AAL5 packet may be unacceptable. For example, an optical fiber ATM line operating at 155 Mbits per second can at most carry approximately one 64 KByte AAL5 packet in each 3.9 millisecond period, one 9 KByte packet in each 544 microsecond period, or one 512 byte AAL5 packet in each 30 microsecond period. A 622 Mbits per second line operating at full speed requires approximately 970 microseconds per 64 KByte packet, 136 microseconds per 9 KByte packet, or 7.5 microseconds per 512 byte packet.
A processor being interrupted at the AAL5 packet arrival rates would suffer potentially severe performance degradation just from the time required to suspend its current process, save the context of that process (the values currently in registers, for example), decide whether or not an immediate response is needed to the interrupt, respond if necessary, restore the saved context, and resume the interrupted process. A typical processor may require around 12 to 20 us to process a network packet arrival interrupt.
For many applications, it is desirable that a computer system include a mechanism that allows its processor to poll to see if a network data packet has arrived. However under such a scheme, as the utilization of the network decreases, the unproductive overhead imposed on the processor increases. That is, if there is little data traffic over the network, then the processor spends a significant amount of time querying to see if a new packet has arrived, only to find out that none has. A typical processor may require on the order of 0.5 microsecond for an unsuccessful network packet arrival poll. A computer system performing computations or local input/output activity, for example, could go for hours receiving only an insignificant number of network data packets.
Thus there is a need to modulate the rate at which a processor is interrupted due to data packets arriving from a high speed network such that polling is avoided during periods of light network activity but also such that excessive interrupts do not occur during bursts of high network activity. This need is particularly critical in the case of computer file transfers over a high speed network because such transfers are bursty in nature--the entire network bandwidth may be utilized during the period that a file or file segment is sent, but then there may be minimal network activity for a substantial period.